//
//  PopoverPresentationController.swift
//  JKWeiBo
//
//  Created by 王冲 on 2017/6/2.
//  Copyright © 2017年 希爱欧科技有限公司. All rights reserved.
//

import UIKit


class PopoverPresentationController: UIPresentationController{

    // 定义一个presentFrame 来动态改变展示视图的frame
    var presentFrame = CGRect.zero
    
    /**
     实例化负责转场的控制器
     
     :param: presentedViewController  被展现的控制器
     :param: presentingViewController 发起转场的控制器, xocde6是nil, xocde7是野指针
     
     :returns: 负责转场的控制器
     */
    override init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?) {
        
        super.init(presentedViewController: presentedViewController, presenting: presentingViewController)
    }
    
    /*
     即将布局容器视图上得子视图时调用
     containerView 容器视图, 放置展现出来的视图
     presentedView 被展现的视图
     */
    override func containerViewWillLayoutSubviews() {
        
        // 1.添加遮盖
        containerView?.addSubview(coverView)
        containerView?.insertSubview(coverView, at: 0)
        coverView.frame = (containerView?.frame)!
        
        // 把菜单的frame做活
        if presentFrame == CGRect.zero {
            
            /*
             *  这个是默认菜单高度
             */
            // 2.调整被展示视图的大小
            presentedView?.frame = CGRect(x:JKscreenW/2.0-100,y:56,width:200,height:200)
            // 2.1.被展示视图上面的子视图大小的调整
            // 背景图片
            presentedView?.subviews[0].frame =  CGRect(x:0,y:0,width:200,height:200)
            // tableview
            presentedView?.subviews[1].frame = CGRect(x:20,y:20,width:presentedView!.width-40,height:presentedView!.height-40)
            
        }else{
        
            /*
             *  这个是外面自定义的菜单高度
             */
            
            // 2.调整被展示视图的大小
            presentedView?.frame = presentFrame
            // 2.1.被展示视图上面的子视图大小的调整
            // 背景图片
            presentedView?.subviews[0].frame =  CGRect(x:0,y:0,width:presentFrame.width,height:presentFrame.height)
            // tableview
            presentedView?.subviews[1].frame = CGRect(x:20,y:20,width:presentFrame.width-40,height:presentFrame.height-40)
        
        }
        
        
        
    }
    
    /**
     关闭弹窗
     */
    func close(){
        
        presentedViewController.dismiss(animated: true, completion: nil)
    }
    
    // MARK: - 懒加载
    lazy var coverView: UIView = {
        // 1.创建蒙版
        let view = UIView()
        view.backgroundColor = UIColor(white: 0.0, alpha: 0.2)
        // 2.注册监听
        let tap = UITapGestureRecognizer(target: self, action: #selector(PopoverPresentationController.close))
        view.addGestureRecognizer(tap)
        return view
    }()


}





